﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

/// <summary>
/// Summary description for PairIdComponent
/// </summary>
public class PairIdComponent
{
    public const string Key1Property = "Key1";
    public const string Key2Property = "Key2";
    protected object _Key1;
    protected object _Key2;

    public PairIdComponent()
    {
    }

    public PairIdComponent(object key1, object key2)
    {
        _Key1 = key1;
        _Key2 = key2;
    }

    /// <summary>
    /// Gets or sets first Id.
    /// </summary>
    public virtual object Key1
    {
        get { return _Key1; }
        set { _Key1 = value; }
    }

    /// <summary>
    /// Gets or sets second Id.
    /// </summary>
    public virtual object Key2
    {
        get { return _Key2; }
        set { _Key2 = value; }
    }

    public override int GetHashCode()
    {
        return _Key1.GetHashCode() ^ _Key2.GetHashCode();
    }

    public override bool Equals(object obj)
    {
        if (this == obj) return true;
        PairIdComponent pairIdComponent = obj as PairIdComponent;
        if (pairIdComponent == null) return false;
        if (!Equals(_Key1, pairIdComponent._Key1)) return false;
        if (!Equals(_Key2, pairIdComponent._Key2)) return false;
        return true;
    }

    public override string ToString()
    {
        return _Key2.ToString();
    }
}
